package cn.b.sky.common.utils;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

 public interface FTPUtils {
 
   boolean connectToTheService();

  /**
   * 
   * <strong>Title : uploadMultipartFiles<br>
   * </strong> <strong>Description : </strong>springmvc 上传文件<br>
   * <strong>Create on : 2015-10-8 上午9:29:22<br>
   * </strong>
   * <p>
   * 
   * @param file
   * @param filePath
   * @param fileName
   *            uuid
   * @return String
   * @throws
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   */
   String uploadMultipartFiles(MultipartFile file, String filePath, String fileName);

  /**
   * 
   * <strong>Title : uploadInputStream<br></strong>
   * <strong>Description : </strong>流式上传<br> 
   * <strong>Create on : 2016-7-26 上午9:54:34<br></strong>
   * <p>
   * @param in
   * @param filePath
   * @param fileName
   * @return
   * String
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
   String uploadInputStream(InputStream in, String filePath, String fileName);
  /**
   * 
   * <strong>Title : uploadCommonFiles<br>
   * </strong> <strong>Description : </strong>上传普通文件<br>
   * <strong>Create on : 2015-10-8 上午9:30:23<br>
   * </strong>
   * <p>
   * 
   * @param file
   *             void
   * @throws
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   *          <strong>修改历史:</strong><br>
   *          修改人 | 修改日期 | 修改描述<br>
   *          -------------------------------------------<br>
   * <br>
   * <br>
   * @throws IOException 
   */
   String uploadCommonFiles(File file, String bussiness, String fileName) throws IOException;

  /**
   * 
   * <strong>Title : deleteFile<br></strong>
   * <strong>Description : </strong>删除附件，<br> 
   * <strong>Create on : 2015-10-8 下午12:21:29<br></strong>
   * <p>
   * @param filePath 附件的全路径
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
   void deleteFile(String filePath);

  /***
   * 
   * <strong>Title : isExistisFile<br></strong>
   * <strong>Description : </strong>附件是否存在<br> 
   * <strong>Create on : 2016-7-26 上午9:55:37<br></strong>
   * <p>
   * @param filePath
   * @param fileName
   * @return
   * @throws IOException
   * Boolean
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
   Boolean isExistisFile(String filePath, String fileName) throws IOException;

  /**
   * 
   * <strong>Title : fileDownload<br></strong>
   * <strong>Description : </strong>ftp 下载， 指定下载ftp上某一个目录或者文件到本地<br> 
   * <strong>Create on : 2015-10-8 下午12:29:24<br></strong>
   * <p>
   * @param filePath
   * @param os
   * @return
   * boolean
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
   boolean  fileDownload(String filePath, OutputStream os);

  /**
   * <strong>Title : disConenctToServer<br></strong>
   * <strong>Description : </strong>关闭连接,单例的不需要关闭<br> 
   * <strong>Create on : 2015-10-8 下午12:27:41<br></strong>
   * <p>
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */

}
